/**
 * 初始化
 */
$(function() {
	// 初始化列表
	initCouponTable();
	
	sys.daterangepicker({
		id : 'couponDate',
		type : 'datetime',
		// startDate: moment().subtract(2, "days"), //当前时间减去一天时间
		maxDate : '2099-12-31 23:59:59'
	});
	$("#couponDate").val("");
	sys.daterangepicker({
		id : 'couponGetDate',
		type : 'datetime',
		// startDate: moment().subtract(2, "days"), //当前时间减去一天时间
		maxDate : '2099-12-31 23:59:59'
	});
	$("#couponGetDate").val("");
	
	
	
	// 查询
	$('#btnQuery').on('click', function() {
		sys.reloadTable('couponTable');
	});
	
	/**
	 * 键盘点击事件，回车键，执行搜索
	 */
	$("input").bind('keypress', function(event) {
		if (event.keyCode == "13") {
			sys.reloadTable('couponTable');
		}
	});

	// 清空
	$('#btnClear').on('click', function() {
		$("#couponName").val("");
		$("#beginTime").val("");
		$("#endTime").val("");
		$("#limitDay").val("");
		$("#beginGetTime").val("");
		$("#endGetTime").val("");
		$("#issueNumber").val("");
		$("#limitNumber").val("");
		$("#status").val("");
	});
	// 新增
	$('#btnAdd').on('click', function() {
		window.location.href = rootPath + '/coupon/toAddCoupon';
	});
});

/**
 * 初始化列表
 */
function initCouponTable() {
	// 定义列
	var columns = [
			{
				field : 'no',
				title : '序号',
				align : 'center',
				valign : 'middle',
				formatter : function(value, row, index) {
					var options = $("#couponTable").bootstrapTable("getOptions");
					return options.pageSize * (options.pageNumber - 1) + index + 1;
				}
			},
			{
				field : 'id',
				align : 'left',
				valign : 'middle',
				visible : false
			},
			{
				field : 'couponName',
				title : '红包名称',
				align : 'left',
				valign : 'middle'
			},
			{
				field : 'couponAmount',
				title : '红包面值',
				align : 'center',
				valign : 'middle',
				visible : true
			},
			{
				title : '活动时间',
				width : '15%',
				align : 'center',
				valign : 'middle',
				width : '160px',
				formatter : function(value, row, index) {
					var beginGetTime = formatDateTime(row.beginGetTime, row, index);
					var endGetTime = formatDateTime(row.endGetTime, row, index);
					return beginGetTime + "<br>" + endGetTime;
				}
			},
			{
				title : '红包有效期',
				width : '160px',
				align : 'center',
				valign : 'middle',
				formatter : function(value, row, index) {
					// 有效期类型
					var timeType = row.timeType;
					if (timeType == 1) {
						var beginTime = formatDateTime(row.beginTime, row, index);
						var endTime = formatDateTime(row.endTime, row, index);
						return beginTime + "<br>" + endTime;
					} else if (timeType == 2) {
						return row.limitDay + ' 天';
					} else {
						return '未知';
					}
				}
			},
			{
				field : 'issueNumber',
				title : '发放 / 领取 / 已用',
				width : '160px',
				align : 'center',
				valign : 'middle',
				formatter : function(value, row, index) {
					var couponId = row.id;
					var html = row.issueNumber + " / " + row.getNumber + " / " + row.usedNumber;
					return html;
				}
			}, {
				field : 'limitNumber',
				title : '每人限领（空则表示不限）',
				align : 'center',
				valign : 'middle',
				visible : false
			}, {
				field : 'conditionAmount',
				title : '使用条件金额',
				align : 'center',
				valign : 'middle',
				visible : false
			}, {
				field : 'status',
				title : '状态',
				align : 'center',
				valign : 'middle',
				formatter : function(value, row, index) {
					return formatStatus(value, row, index);
				}
			}, {
				field : 'creater',
				title : '创建人',
				align : 'center',
				valign : 'middle'
			}, {
				field : 'createTime',
				title : '创建时间',
				align : 'center',
				valign : 'middle',
				formatter : function(value, row, index) {
					return formatDateTime(value, row, index);
				}
			}, {
				field : 'modifier',
				title : '修改人',
				align : 'center',
				valign : 'middle',
				visible : false
			}, {
				field : 'modifyTime',
				title : '修改时间',
				width : '160px',
				align : 'center',
				valign : 'middle',
				visible : false,
				formatter : function(value, row, index) {
					return formatDateTime(value, row, index);
				}
			}, {
				field : '#',
				title : '操作',
				align : 'left',
				valign : 'middle',
				formatter : function(value, row, index) {
					return formatBtn(value, row, index);
				}
			} ];

	// 定义查询回调函数（查询参数在此设置）
	var queryParams = function(params) {
		var couponName = $("#couponName").val();
		var couponDate = $("#couponDate").val();
		var couponGetDate = $("#couponGetDate").val();
		var status = $("#status").val();

		return {
			rows : params.limit, // 页面大小
			page : params.pageNumber, // 页码
			couponName : couponName,
			couponDate : couponDate,
			couponGetDate : couponGetDate,
			status : status
		};
	};

	var url = rootPath + "/coupon/listCouponPage"; // 请求json数据的服务器地址
	sys.initTable('couponTable', {
		url : url,
		queryParams : queryParams,
		columns : columns,
		striped : true,
		clickToSelect : true
	});
}


/**
 * 格式化操作按钮（红包领取时间与状态）
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月9日 下午5:31:11
 * @param value
 * @param row
 * @param index
 * @returns {String}
 */
function formatBtn(value, row, index) {
	//查看按钮
	var detailBtn = "<a class='btn btn-info btn-xs' href='javaScript:void(0);' onclick='toDetail(" + row.id + ")'>查看</a>";
	//启用按钮
	var enableBtn = "<a class='btn btn-info btn-xs' href='javaScript:void(0);' onclick='updateStatus(" + row.id + ",1)'>启用</a>";
	//停用按钮
	var disableBtn = "<a class='btn btn-danger btn-xs' href='javaScript:void(0);' onclick='updateStatus(" + row.id + ",0)'>停用</a>";
	//编辑按钮
	var editBtn = "<a class='btn btn-info btn-xs' href='javaScript:void(0);' onclick='toEdit(" + row.id + ")'>编辑</a>";
	//删除按钮
	var delBtn = "<a class='btn btn-danger btn-xs' href='javaScript:void(0);' onclick='doDelCoupon(" + row.id + ")'>删除</a>";
	//TODO 发放红包
	var providBtn = "<a class='btn btn-info btn-xs' href='javaScript:void(0);' onclick='doProvidCoupon(" + row.id + ")'>发放</a>";
//	var providBtn = "";
	//有权限的按钮(查看按钮任何时候都可以看)
	var btnHtml = detailBtn;
	//验证数量，当发放数量等于领取数量，等于已用数量，说明活动已结束
	var couponId = row.id;
	var issueNumber = row.issueNumber;
	//var getNumber = $("#couponGetCount" + couponId).html();
	var usedNumber = row.usedNumber;//$("#couponUsedCount" + couponId).html();
	
	if(parseInt(issueNumber) - parseInt(usedNumber) == 0) {
		return btnHtml;
	} else {
		//红包尚未全部被领取、使用，则需要校验状态
		var currentTime = $("#systemTime").val();
		var timeType = row.timeType;
		if(timeType == 1) {
			// 有效期
			var beginTime = row.beginTime;
			var endTime = row.endTime;
			if (currentTime >= beginTime && currentTime <= endTime) {
				// 生效中
				if (row.status == "0") {
					//生效、停用状态（已暂停）——（查看、启用）
					btnHtml += enableBtn;
				} else if (row.status == "1") {
					//生效、启用状态——（查看、停用、发放）
					btnHtml += disableBtn + providBtn;
				}
			} else if (currentTime < beginTime) {
				// 未生效
				if (row.status == "0") {
					//未生效、停用状态——（查看、启用、编辑、删除）
					btnHtml += enableBtn + editBtn + delBtn;
				} else if (row.status == "1") {
					//未生效、启用状态——（查看、停用、编辑、发放、删除）
					btnHtml += disableBtn + editBtn + providBtn + delBtn;
				}
			} else if (currentTime > endTime) {
				// 已失效
				// 只能查看，不需要拼接
			} else {
				// 未匹配的时间状态
				// 只能查看，不需要拼接
			}
			return btnHtml;
		} else if(timeType == 2) {
			// 时长
			var beginTime = row.beginGetTime;
			var endTime = row.endGetTime;
			if (currentTime >= beginTime && currentTime <= endTime) {
				// 生效中
				if (row.status == "0") {
					//生效、停用状态（已暂停）——（查看、启用）
					btnHtml += enableBtn;
				} else if (row.status == "1") {
					//生效、启用状态——（查看、停用、发放）
					btnHtml += disableBtn + providBtn;
				}
			} else if (currentTime < beginTime) {
				// 未生效
				if (row.status == "0") {
					//未生效、停用状态——（查看、启用、编辑、删除）
					btnHtml += enableBtn + editBtn + delBtn;
				} else if (row.status == "1") {
					//未生效、启用状态——（查看、停用、编辑、发放、删除）
					btnHtml += disableBtn + editBtn + providBtn + delBtn;
				}
			} else if (currentTime > endTime) {
				// 已结束（根据领用时间判断已结束，但是活动依然是进行中）
				if (row.status == "0") {
					//未生效、停用状态——（查看、启用）
					btnHtml += enableBtn;
				} else if (row.status == "1") {
					//未生效、启用状态——（查看、停用）
					btnHtml += disableBtn;
				}
			} else {
				// 未匹配的时间状态
				// 只能查看，不需要拼接
			}
			return btnHtml;
		} else {
			return btnHtml;
		} 
	}
}

/**
 * 格式化状态（根据领取）
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月9日 下午7:36:15
 * @param value
 * @param row
 * @param index
 * @returns {String}
 */
function formatStatus(value, row, index) {
	var currentTime = $("#systemTime").val();
	//验证数量，当发放数量等于领取数量，等于已用数量，说明活动已结束
	var couponId = row.id;
	var issueNumber = row.issueNumber;
	//var getNumber = $("#couponGetCount" + couponId).html();
	var usedNumber = row.usedNumber;//$("#couponUsedCount" + couponId).html();
	if(parseInt(issueNumber) - parseInt(usedNumber) == 0) {
		return "<span class='label label-inverse'>已结束</span>";
	} else {
		//红包尚未全部被领取、使用，则需要校验时间状态
		var timeType = row.timeType;
		if(timeType == 1) {
			//有效期
			var beginTime = row.beginTime;
			var endTime = row.endTime;
			if (currentTime >= beginTime && currentTime <= endTime) {
				if (value == 0) {
					return "<span class='label label-danger'>已暂停</span>";
				} else {
					return "<span class='label label-warning'>进行中</span>";
				}
			} else if (currentTime < beginTime) {
				return "<span class='label label-success'>未开始</span>";
			} else if (currentTime > endTime) {
				return "<span class='label label-inverse'>已结束</span>";
			} else {
				return '-';
			}
		} else if(timeType == 2) {
			// 时长
			var beginTime = row.beginGetTime;
			var endTime = row.endGetTime;
			if (currentTime >= beginTime && currentTime <= endTime) {
				if (value == 0) {
					return "<span class='label label-danger'>已暂停</span>";
				} else {
					return "<span class='label label-warning'>进行中</span>";
				}
			} else if (currentTime < beginTime) {
				return "<span class='label label-success'>未开始</span>";
			} else if (currentTime > endTime) {
				if (value == 0) {
					return "<span class='label label-danger'>已暂停</span>";
				} else {
					return "<span class='label label-warning'>进行中</span>";
				}
			} else {
				return '-';
			}
		} else {
			//无
			return '-';
		}
	}
}
/**
 * 修改活动状态
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月11日 下午8:49:59
 * @param id
 * @param status
 */
function updateStatus(id, status) {
	showConfirm("确认修改红包状态吗？", function() {
		$.ajax({
			url : rootPath + "/coupon/updateStatus",
			type : "post",
			async : true,
			dataType : 'json',
			data : {
				id : id,
				status : status
			},
			success : function(json) {
				if (json.code == '1') {
					showSuccess(json.msg, function() {
						sys.reloadTable('couponTable');
					});
				} else {
					showErr(json.msg);
				}
			}
		});
	});
}

/**
 * 修改活动状态
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月11日 下午8:49:59
 * @param id
 * @param status
 */
function doDelCoupon(id, status) {
	showConfirm("确认删除该红包吗？", function() {
		$.ajax({
			url : rootPath + "/coupon/doDelCoupon",
			type : "post",
			async : true,
			dataType : 'json',
			data : {
				id : id
			},
			success : function(json) {
				if (json.code == '1') {
					showSuccess(json.msg, function() {
						sys.reloadTable('couponTable');
					});
				} else {
					showErr(json.msg);
				}
			}
		});
	});
}

///**
// * 红包领用数量
// * 
// * @Description do-something
// * @author xu_cc
// * @date 创建时间：2017年11月16日 下午5:03:47
// * @param couponId
// */
//function getCouponGetCount(couponId) {
//	$.ajax({
//		url : rootPath + "/coupon/getCouponGetCount",
//		type : "post",
//		async : true,
//		dataType : 'json',
//		data : {
//			couponId : couponId
//		},
//		success : function(count) {
//			$("#couponGetCount" + couponId).html(count);
//			// return count;
//		},
//		error : function() {
//			return 0;
//		}
//	});
//}
///**
// * 红包使用数量
// * 
// * @Description do-something
// * @author xu_cc
// * @date 创建时间：2017年11月16日 下午5:03:47
// * @param couponId
// */
//function getCouponUsedCount(couponId) {
//	$.ajax({
//		url : rootPath + "/coupon/getCouponUsedCount",
//		type : "post",
//		async : true,
//		dataType : 'json',
//		data : {
//			couponId : couponId
//		},
//		success : function(count) {
//			$("#couponUsedCount" + couponId).html(count);
//			// return count;
//		},
//		error : function() {
//			return 0;
//		}
//	});
//}

//跳转至红包发放页面
function doProvidCoupon(id){
	var url = rootPath + "/coupon/toProvidCoupon";  
	var form = $("<form></form>");  
	form.attr("action", url);  
	form.attr("method", "post");  
	form.append("<input type='hidden' name='id' value='"+id+"'/>");
	form.appendTo("body").submit();  
	form.remove();
}

// 跳转详情页面
function toDetail(id) {
	window.location.href = rootPath + "/coupon/toDetail?id=" + id;
}
// 跳转编辑页面
function toEdit(id) {
	window.location.href = rootPath + "/coupon/toUpdateCoupon?id=" + id;
}